import java.util.*;

public class Main {
    //给定一个字符串 s ，请你找出其中不含有重复字符的 最长 子串 的长度。
    //哈希表法
    /*public static int seek(String s ) {
         Map<Character,Integer> set = new HashMap<>();//创建哈希表存储字串
         int left=0;
         int ans=0;
         for(int right=0;right<s.length();right++){
             char c = s.charAt(right);
             set.put(c,set.getOrDefault(c,0)+1);//判断每个字符出现的次数【a,1】
             while(set.get(c)>2){//如果当前字符出现两次
                 char b = s.charAt(left);
                 set.put(b,set.getOrDefault(b,0)-1);//从左端点开始移动窗口，删减字符
                 if(set.get(b)==0){
                     set.remove(b);//出现次数为0，则移除
                 }
                 left++;
             }
             ans=Math.max(ans,right-left+1);
         }
         return ans;
    }*/
    //一维数组法，以字母为索引记录出现的次数
    public static int seek(String s) {
        char[] chars=s.toCharArray();//转换为字符数组
        int[]arr=new int[128];//字母的最大索引值为127
        int left=0;
        int result=0;
        for(int right=0;right<chars.length;right++){
            char c=chars[right];
            arr[c]++;//记录出现次数
            while(arr[c]>2){
                arr[chars[left]]--;//移动窗口删减次数
                left++;
            }
            result=Math.max(result,right-left+1);
        }
        return result;
    }
    public static void main(String[] args) {
      Scanner sc = new Scanner(System.in);
      String s = sc.nextLine();
      int length=seek(s);
      System.out.println(length);
      sc.close();
    }
}